package com.clss.webrtclibrary;

import java.io.Serializable;
import java.util.List;

/**
 * 视频房间信息
 *
 * @author liuv
 * @date 2018/5/2
 */

public class MediaInfoBean implements Serializable {

    /**
     * id : 63aa0780-30c8-11e8-91be-7fbafeddc87a
     * caseId : 638149d0-30c8-11e8-91be-7fbafeddc87a
     * signalingServer : ws://192.168.100.117:8080/skynet/ws/groupcall
     * mediaServer : ws://test.video110.cn:8433/kurento
     * description : ALERT
     * pin : Q0EE
     * record : true
     * rec_dir : /opt/janus/share/janus/recordings/2018-03-26
     * creator : dd8decc0-6ea3-11e7-965b-953f4e2d591d
     * turnAddress : turn:v1.video110.cn:34780
     * turnUser : video1
     * turnPassword : 12wwfthisisturnserver1
     * publicLevel : 0
     * save : true
     * expirationSecond : 60
     */

    /**
     * 视频房间的id
     */
    private String id;
    /**
     * 本次案件的id
     */
    private String caseId;
    /**
     * 信令服务器的地址
     */
    private String signalingServer;
    private String description;
    private String pin;
    private boolean record;
    private String creator;
    private String turnAddress;
    private String turnUser;
    private String turnPassword;
    private int publicLevel;
    private boolean save;
    private int expirationSecond;
    private String videoGroupId;
    private String publisher;
    private String msg1, msg2, msg3;
    private List<AlarmHintInfo> list;
    private SignalingBean signalingBean;

    /**
     * status : 1
     * secret : Zgsuqx
     * participants : [{"userId":"b7149e70-7017-11e7-9005-3f5f960065f4","records":[{"startTime":"2018-04-08 06:29:38.080","endTime":"2018-04-08 06:29:57.907","server":"ws://172.20.39.18:8888/kurento","fileId":"3637ea00-3af6-11e8-b608-4170d3a2b82c","videoFile":"file:///data/2018-04-08/35699d80-3af6-11e8-b608-4170d3a2b82c-b7149e70-7017-11e7-9005-3f5f960065f4-14:29:37.webm"}]}]
     * token : +qpxzexJPfaS5xzzlg1tAPGoMsGTBnvEvhJE2EE8nyPQJAy25ayTgRVpzlgdz/JCvYVwHzgHKvssr7wl/y//3A==
     */

    private int status;
    private String secret;
    private String token;
    private List<ParticipantsBean> participants;
    private int alarmType = -1;
    private String unitName = "";
    /**
     * iceServers : [{"urls":"stun:211.90.39.22:3478"},{"urls":"turn:211.90.39.22:3478","username":"video110","credential":"8b9f9d90-d500-11e8-a1d4-83760b57ada8"}]
     * enhance : true
     */

    public MediaInfoBean.SignalingBean getSignalingBean() {
        return signalingBean;
    }

    public void setSignalingBean(MediaInfoBean.SignalingBean signalingBean) {
        this.signalingBean = signalingBean;
    }

    private List<IceServersBean> iceServers;

    public List<AlarmHintInfo> getList() {
        return list;
    }

    public void setList(List<AlarmHintInfo> list) {
        this.list = list;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getCaseId() {
        return caseId;
    }

    public void setCaseId(String caseId) {
        this.caseId = caseId;
    }

    public String getSignalingServer() {
        return signalingServer;
    }

    public void setSignalingServer(String signalingServer) {
        this.signalingServer = signalingServer;
    }

    public int getAlarmType() {
        return alarmType;
    }

    public void setAlarmType(int alarmType) {
        this.alarmType = alarmType;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getPin() {
        return pin;
    }

    public void setPin(String pin) {
        this.pin = pin;
    }

    public boolean isRecord() {
        return record;
    }

    public void setRecord(boolean record) {
        this.record = record;
    }

    public String getCreator() {
        return creator;
    }

    public void setCreator(String creator) {
        this.creator = creator;
    }

    public int getPublicLevel() {
        return publicLevel;
    }

    public void setPublicLevel(int publicLevel) {
        this.publicLevel = publicLevel;
    }

    public boolean isSave() {
        return save;
    }

    public void setSave(boolean save) {
        this.save = save;
    }

    public int getExpirationSecond() {
        return expirationSecond;
    }

    public void setExpirationSecond(int expirationSecond) {
        this.expirationSecond = expirationSecond;
    }

    public String getVideoGroupId() {
        return videoGroupId;
    }

    public void setVideoGroupId(String videoGroupId) {
        this.videoGroupId = videoGroupId;
    }

    public String getPublisher() {
        return publisher;
    }

    public void setPublisher(String publisher) {
        this.publisher = publisher;
    }

    public String getMsg1() {
        return msg1;
    }

    public void setMsg1(String msg1) {
        this.msg1 = msg1;
    }

    public String getMsg2() {
        return msg2;
    }

    public void setMsg2(String msg2) {
        this.msg2 = msg2;
    }

    public String getMsg3() {
        return msg3;
    }

    public void setMsg3(String msg3) {
        this.msg3 = msg3;
    }

    public String getTurnAddress() {
        return turnAddress;
    }

    public String getTurnUser() {
        return turnUser;
    }

    public String getTurnPassword() {
        return turnPassword;
    }

    public void setTurnAddress(String turnAddress) {
        this.turnAddress = turnAddress;
    }

    public void setTurnUser(String turnUser) {
        this.turnUser = turnUser;
    }

    public void setTurnPassword(String turnPassword) {
        this.turnPassword = turnPassword;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public String getSecret() {
        return secret;
    }

    public void setSecret(String secret) {
        this.secret = secret;
    }

    public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
    }

    public List<ParticipantsBean> getParticipants() {
        return participants;
    }

    public void setParticipants(List<ParticipantsBean> participants) {
        this.participants = participants;
    }

    public List<IceServersBean> getIceServers() {
        return iceServers;
    }

    public void setIceServers(List<IceServersBean> iceServers) {
        this.iceServers = iceServers;
    }

    public String getUnitName() {
        return unitName;
    }

    public void setUnitName(String unitName) {
        this.unitName = unitName;
    }

    @Override
    public String toString() {
        return "MediaInfoBean{" +
                "id='" + id + '\'' +
                ", caseId='" + caseId + '\'' +
                ", signalingServer='" + signalingServer + '\'' +
                ", description='" + description + '\'' +
                ", pin='" + pin + '\'' +
                ", record=" + record +
                ", creator='" + creator + '\'' +
                ", turnAddress='" + turnAddress + '\'' +
                ", turnUser='" + turnUser + '\'' +
                ", turnPassword='" + turnPassword + '\'' +
                ", publicLevel=" + publicLevel +
                ", save=" + save +
                ", expirationSecond=" + expirationSecond +
                ", videoGroupId='" + videoGroupId + '\'' +
                ", publisher='" + publisher + '\'' +
                ", msg1='" + msg1 + '\'' +
                ", msg2='" + msg2 + '\'' +
                ", msg3='" + msg3 + '\'' +
                ", list=" + list +
                ", signalingBean=" + signalingBean.toString() +
                ", status=" + status +
                ", secret='" + secret + '\'' +
                ", token='" + token + '\'' +
                ", participants=" + participants +
                ", alarmType=" + alarmType +
                ", iceServers=" + iceServers +
                '}';
    }

    public static class SignalingBean implements Serializable{
        /**协议表示：stomp 标记为"stomp" ;xmpp 标识为 "xmpp"*/
        private String protocolFlag;
        /**
         * stomp
         */
        private String stompDestination;
        private String stompHost;
        /**
         * xmpp
         */
        private String xmppDestination;
        private String xmppHost;
        private String domain;
        private int port;
        private String compositeTag;
        private String videoTag;

        public String getCompositeTag() {
            return compositeTag;
        }

        public void setCompositeTag(String compositeTag) {
            this.compositeTag = compositeTag;
        }

        public String getVideoTag() {
            return videoTag;
        }

        public void setVideoTag(String videoTag) {
            this.videoTag = videoTag;
        }

        public String getProtocolFlag() {
            return protocolFlag;
        }

        public void setProtocolFlag(String protocolFlag) {
            this.protocolFlag = protocolFlag;
        }

        public String getStompDestination() {
            return stompDestination;
        }

        public void setStompDestination(String stompDestination) {
            this.stompDestination = stompDestination;
        }

        public String getStompHost() {
            return stompHost;
        }

        public void setStompHost(String stompHost) {
            this.stompHost = stompHost;
        }

        public String getXmppDestination() {
            return xmppDestination;
        }

        public void setXmppDestination(String xmppDestination) {
            this.xmppDestination = xmppDestination;
        }

        public String getXmppHost() {
            return xmppHost;
        }

        public void setXmppHost(String xmppHost) {
            this.xmppHost = xmppHost;
        }

        public String getDomain() {
            return domain;
        }

        public void setDomain(String domain) {
            this.domain = domain;
        }

        public int getPort() {
            return port;
        }

        public void setPort(int port) {
            this.port = port;
        }

        @Override
        public String toString() {
            return "SignalingBean{" +
                    "protocolFlag='" + protocolFlag + '\'' +
                    ", stompDestination='" + stompDestination + '\'' +
                    ", stompHost='" + stompHost + '\'' +
                    ", xmppDestination='" + xmppDestination + '\'' +
                    ", xmppHost='" + xmppHost + '\'' +
                    ", domain='" + domain + '\'' +
                    ", port=" + port +
                    ", compositeTag='" + compositeTag + '\'' +
                    ", videoTag='" + videoTag + '\'' +
                    '}';
        }
    }

    public static class ParticipantsBean implements Serializable {
        /**
         * userId : b7149e70-7017-11e7-9005-3f5f960065f4
         * records : [{"startTime":"2018-04-08 06:29:38.080","endTime":"2018-04-08 06:29:57.907","server":"ws://172.20.39.18:8888/kurento","fileId":"3637ea00-3af6-11e8-b608-4170d3a2b82c","videoFile":"file:///data/2018-04-08/35699d80-3af6-11e8-b608-4170d3a2b82c-b7149e70-7017-11e7-9005-3f5f960065f4-14:29:37.webm"}]
         */

        private String userId;
        private List<RecordsBean> records;

        public String getUserId() {
            return userId;
        }

        public void setUserId(String userId) {
            this.userId = userId;
        }

        public List<RecordsBean> getRecords() {
            return records;
        }

        public void setRecords(List<RecordsBean> records) {
            this.records = records;
        }

        @Override
        public String toString() {
            return "ParticipantsBean{" +
                    "userId='" + userId + '\'' +
                    ", records=" + records +
                    '}';
        }

        public static class RecordsBean implements Serializable {
            /**
             * startTime : 2018-04-08 06:29:38.080
             * endTime : 2018-04-08 06:29:57.907
             * server : ws://172.20.39.18:8888/kurento
             * fileId : 3637ea00-3af6-11e8-b608-4170d3a2b82c
             * videoFile : file:///data/2018-04-08/35699d80-3af6-11e8-b608-4170d3a2b82c-b7149e70-7017-11e7-9005-3f5f960065f4-14:29:37.webm
             */

            private String startTime;
            private String endTime;
            private String server;
            private String fileId;
            private String videoFile;

            public String getStartTime() {
                return startTime;
            }

            public void setStartTime(String startTime) {
                this.startTime = startTime;
            }

            public String getEndTime() {
                return endTime;
            }

            public void setEndTime(String endTime) {
                this.endTime = endTime;
            }

            public String getServer() {
                return server;
            }

            public void setServer(String server) {
                this.server = server;
            }

            public String getFileId() {
                return fileId;
            }

            public void setFileId(String fileId) {
                this.fileId = fileId;
            }

            public String getVideoFile() {
                return videoFile;
            }

            public void setVideoFile(String videoFile) {
                this.videoFile = videoFile;
            }

            @Override
            public String toString() {
                return "RecordsBean{" +
                        "startTime='" + startTime + '\'' +
                        ", endTime='" + endTime + '\'' +
                        ", server='" + server + '\'' +
                        ", fileId='" + fileId + '\'' +
                        ", videoFile='" + videoFile + '\'' +
                        '}';
            }
        }
    }

    public static class IceServersBean implements Serializable{
        /**
         * urls : stun:211.90.39.22:3478
         * username : video110
         * credential : 8b9f9d90-d500-11e8-a1d4-83760b57ada8
         */

        private String urls;
        private String username;
        private String credential;

        public String getUrls() {
            return urls;
        }

        public void setUrls(String urls) {
            this.urls = urls;
        }

        public String getUsername() {
            return username;
        }

        public void setUsername(String username) {
            this.username = username;
        }

        public String getCredential() {
            return credential;
        }

        public void setCredential(String credential) {
            this.credential = credential;
        }
    }

    public static class AlarmHintInfo implements Serializable {

        /**
         * receivedAlarmTipsShowTime : 9
         * hangupTipsShowTime : 2
         * afterReceivingAlarmTips : 温馨提示:您的报警石家庄接警中心已接通,可以和接警员语音或文字对话了.
         * wsKeepConnetTime : 50
         * alarmTips : 安全助理：视频呼叫中...请注意屏幕下方"事发地点"是否准确，您可修改或补充准确地址.
         * waitTips : 当前地点：河北省石家庄市桥西区西二环南路辅路188号靠近石家庄市渔政监督管理处，您可点击屏幕下方位置图标补充详细地址。
         * waitStatus : 等待接通...
         * alarmCenterName : 石家庄接警中心
         * alarmPeopleHangup : 已挂断
         * seatBusy : 坐席繁忙,请耐心等待或拨打110电话报警
         * seatBusyTipsShowTime : 9
         * isUsePoliceApp : false
         * alarmDetailAfterHungUp : true
         * waitPeriod : 29
         */

        private int receivedAlarmTipsShowTime;
        private int hangupTipsShowTime;
        private String afterReceivingAlarmTips;
        private int wsKeepConnetTime;
        private String alarmTips;
        private String waitTips;
        private String waitStatus;
        private String alarmCenterName;
        private String alarmPeopleHangup;
        private String seatBusy;
        private int seatBusyTipsShowTime;
        private boolean isUsePoliceApp;
        private boolean alarmDetailAfterHungUp;
        private int waitPeriod;
        private String silenceAlarmTips;

        public String getSilenceAlarmTips() {
            return silenceAlarmTips;
        }

        public void setSilenceAlarmTips(String silenceAlarmTips) {
            this.silenceAlarmTips = silenceAlarmTips;
        }

        public int getReceivedAlarmTipsShowTime() {
            return receivedAlarmTipsShowTime;
        }

        public void setReceivedAlarmTipsShowTime(int receivedAlarmTipsShowTime) {
            this.receivedAlarmTipsShowTime = receivedAlarmTipsShowTime;
        }

        public int getHangupTipsShowTime() {
            return hangupTipsShowTime;
        }

        public void setHangupTipsShowTime(int hangupTipsShowTime) {
            this.hangupTipsShowTime = hangupTipsShowTime;
        }

        public String getAfterReceivingAlarmTips() {
            return afterReceivingAlarmTips;
        }

        public void setAfterReceivingAlarmTips(String afterReceivingAlarmTips) {
            this.afterReceivingAlarmTips = afterReceivingAlarmTips;
        }

        public int getWsKeepConnetTime() {
            return wsKeepConnetTime;
        }

        public void setWsKeepConnetTime(int wsKeepConnetTime) {
            this.wsKeepConnetTime = wsKeepConnetTime;
        }

        public String getAlarmTips() {
            return alarmTips;
        }

        public void setAlarmTips(String alarmTips) {
            this.alarmTips = alarmTips;
        }

        public String getWaitTips() {
            return waitTips;
        }

        public void setWaitTips(String waitTips) {
            this.waitTips = waitTips;
        }

        public String getWaitStatus() {
            return waitStatus;
        }

        public void setWaitStatus(String waitStatus) {
            this.waitStatus = waitStatus;
        }

        public String getAlarmCenterName() {
            return alarmCenterName;
        }

        public void setAlarmCenterName(String alarmCenterName) {
            this.alarmCenterName = alarmCenterName;
        }

        public String getAlarmPeopleHangup() {
            return alarmPeopleHangup;
        }

        public void setAlarmPeopleHangup(String alarmPeopleHangup) {
            this.alarmPeopleHangup = alarmPeopleHangup;
        }

        public String getSeatBusy() {
            return seatBusy;
        }

        public void setSeatBusy(String seatBusy) {
            this.seatBusy = seatBusy;
        }

        public int getSeatBusyTipsShowTime() {
            return seatBusyTipsShowTime;
        }

        public void setSeatBusyTipsShowTime(int seatBusyTipsShowTime) {
            this.seatBusyTipsShowTime = seatBusyTipsShowTime;
        }

        public boolean getIsUsePoliceApp() {
            return isUsePoliceApp;
        }

        public void setIsUsePoliceApp(boolean isUsePoliceApp) {
            this.isUsePoliceApp = isUsePoliceApp;
        }

        public boolean getAlarmDetailAfterHungUp() {
            return alarmDetailAfterHungUp;
        }

        public void setAlarmDetailAfterHungUp(boolean alarmDetailAfterHungUp) {
            this.alarmDetailAfterHungUp = alarmDetailAfterHungUp;
        }

        public int getWaitPeriod() {
            return waitPeriod;
        }

        public void setWaitPeriod(int waitPeriod) {
            this.waitPeriod = waitPeriod;
        }

        @Override
        public String toString() {
            return "AlarmHintInfo{" +
                    "receivedAlarmTipsShowTime=" + receivedAlarmTipsShowTime +
                    ", hangupTipsShowTime=" + hangupTipsShowTime +
                    ", afterReceivingAlarmTips='" + afterReceivingAlarmTips + '\'' +
                    ", wsKeepConnetTime=" + wsKeepConnetTime +
                    ", alarmTips='" + alarmTips + '\'' +
                    ", waitTips='" + waitTips + '\'' +
                    ", waitStatus='" + waitStatus + '\'' +
                    ", alarmCenterName='" + alarmCenterName + '\'' +
                    ", alarmPeopleHangup='" + alarmPeopleHangup + '\'' +
                    ", seatBusy='" + seatBusy + '\'' +
                    ", seatBusyTipsShowTime=" + seatBusyTipsShowTime +
                    ", isUsePoliceApp=" + isUsePoliceApp +
                    ", alarmDetailAfterHungUp=" + alarmDetailAfterHungUp +
                    ", waitPeriod=" + waitPeriod +
                    ", silenceAlarmTips='" + silenceAlarmTips + '\'' +
                    '}';
        }
    }
}



